package com.boat.io.asmr111;

import com.boat.io.util.FileUtil;

import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Exec {


    /**
     * 1.根据页面生成文件名和下载地址
     */
    public  static void step1(){
        String filename = "E:\\gitee\\boat\\JavaIo\\src\\main\\java\\com\\boat\\io\\asmr111\\1.txt"; // html 页面代码路径
        ArrayList<String> list = new ArrayList<String>(2);
        list.add("title");
        list.add("mp3");
        List<String> res = FileUtil.fileByFilter(filename, FilterFactory.getFilters(list));
        FileUtil.print(res);
    }

    public static void main(String[] args) {

//        step1();

        //step2 迅雷下载

        //step3 文件重命名
        step3();

    }


    /**
     * 步骤 2
     */
    public static void step3(){

        String filepath = "G:\\as2\\"; //下载后的文件路径

        List<String> res = FileUtil.readFileByLines("E:\\gitee\\boat\\JavaIo\\src\\main\\java\\com\\boat\\io\\asmr111\\3.txt"); //步骤1产生文件
        Map<String,String> map = new HashMap<>();
        for (int j = 0; j < res.size(); j+=2) {
            String url = res.get(j);
            map.put(url.substring(url.lastIndexOf("/")+1),res.get(j+1));
        }

        for (Map.Entry<String, String> entry : map.entrySet()) {
            renameFile(filepath,entry.getKey(),entry.getValue());
        }
    }


    /**
     * 下载后的文件路径
     * 旧文件名
     * 新文件名
     */
    public static void renameFile(String filePath, String fileName, String name) {
        String oldFileName = filePath + fileName;
        File oldFile = new File(oldFileName);
        String newFileName = filePath + name;
        File newFile = new File(newFileName + ".mp3");
        if (oldFile.exists() && oldFile.isFile() && (fileName.indexOf(".mp3") > 0)) {
            oldFile.renameTo(newFile);
        }else{
            System.out.println(fileName);
        }
    }
}
